﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Docentric.Examples.Data.BusinessObjects.DataModel;
using System.IO;

namespace Docentric.Examples.Data.BusinessObjects
{
    public static class DataAccess
    {
        private static List<ProductCategory> _productCategories;
        private static List<Product> _products;
        private static List<Customer> _customers;
        private static List<Order> _orders;
        private static Store _store;


        #region Static constructor
        static DataAccess()
        {
            // Fill Product Catogories
            _productCategories = new List<ProductCategory>() {
                new ProductCategory() { Id = 1, Name = "Baking Products" },
                new ProductCategory() { Id = 2, Name = "Beans & Grains" },
                new ProductCategory() { Id = 3, Name = "Beverages" },
                new ProductCategory() { Id = 4, Name = "Fruits & Sweeteners" },
                new ProductCategory() { Id = 5, Name = "Grocery Products" },
                new ProductCategory() { Id = 6, Name = "Seasonings" },
                new ProductCategory() { Id = 7, Name = "Snacks & Treats" }
            };


            #region Fill Products
            _products = new List<Product>();

            // Category: Baking Products
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 1,
                Code = "0001",
                Name = "Azure Farm Barley Flour, Org (Unifin),5 lbs.",
                Price = 5.1M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.AzureFarmBarleyFlour.png"),
                Description = "These flours are made using the Unifine Process. In the Unifine Process the grain enters a high speed rotor and is instantly shattered into fine flour - even the bran and germ are burst! Air goes through the rotor with the grain and blows the flour out, thus keeping it cool throughout the process, retaining many nutrients. With the Unifine Process the natural oils in the grain are kept intact and do not get hot like in regular grain milling and stoneground milling.\r\nThis mild-flavored flour made from barley grain contains some gluten. It is low in fat. Aside from being used in baked goods, barley flour can also be used as a thickener, much like flour, for people on a wheat-restricted diet."
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 2,
                Code = "0002",
                Name = "Azure Farm Garbanzo (Chana Dal) Flour, 23 ozs.",
                Price = 4.99M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.AzureFarmGarbanzoFlour.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 3,
                Code = "0003",
                Name = "Cocoa Powder,1 lb.",
                Price = 11.09M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.CocoaPowder.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 4,
                Code = "0004",
                Name = "Olive Oil, Extra Virgin, Organic,16 ozs.",
                Price = 12.59M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.OliveOilExtraVirginOrganic.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 5,
                Code = "0005",
                Name = "Vegetable Glycerine (food grade),1 Qt.",
                Price = 9.99M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.VegetableGlycerine.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 6,
                Code = "0006",
                Name = "Milk Powder, Non-Instant, Non-Fat, Organic,5 lbs.",
                Price = 35.49M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.MilkPowderNonInstantNonFatOrganic.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 7,
                Code = "0007",
                Name = "Lecithin Granules,1 lb.",
                Price = 8.39M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.LecithinGranules.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 8,
                Code = "0008",
                Name = "Tapioca Granules, Organic,4 x 30 ozs.",
                Price = 27.99M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.TapiocaGranulesOrganic.png")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[0],
                Id = 9,
                Code = "0009",
                Name = "Tapioca Flour,16 ozs.",
                Price = 3.29M,
				Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BakingProducts.TapiocaFlour.png")
            });


            // Category: Beans and Grains
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 10,
                Code = "0010",
                Name = "Alphabet Soup Mix, Organic,16.8 ozs.",
                Price = 8.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.AlphabetSoupMix.jpg"),
                Description = "This organic alphabet soup with lentils contains two packets - one for organic seasonings, one for organic alphabet pasta. Add diced tomatoes for the perfect bowl.\r\nINGREDIENTS: Lentils, Split Green Peas, Split Yellow Peas, Barley, Rice, Pasta (Organic Golden Amber Durum Semolina, Beet, Spinach, Carrot), Onion, Carrot; RealSalt, Spices, Garlic, Onion."
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 11,
                Code = "0011",
                Name = "Organic 4-Bean Chili Soup Seasoning,1 lb.",
                Price = 28.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.Organic4BeanChiliSoupSeasoning.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 12,
                Code = "0012",
                Name = "Great Northern Beans, Organic,37 ozs.",
                Price = 6.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.GreatNorthernBeans.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 13,
                Code = "0013",
                Name = "Black Beans, Organic - Canned,12 x 15 ozs.",
                Price = 20.09M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.BlackBeans.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 14,
                Code = "0014",
                Name = "Pinto Beans, Organic - Canned,15 ozs.",
                Price = 1.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.PintoBeans.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 15,
                Code = "0015",
                Name = "Lentils, Green, Organic,25 lbs.",
                Price = 43.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.LentilsGreen.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 16,
                Code = "0016",
                Name = "Popcorn, Yellow, Organic,4 x 40 ozs.",
                Price = 16.39M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.Popcorn.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 17,
                Code = "0017",
                Name = "Long Grain Brown Rice, Organic,2 lbs.",
                Price = 5.09M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.LongGrainBrownRice.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[1],
                Id = 18,
                Code = "0018",
                Name = "Jubilee Rice, Gourmet,1 lb.",
                Price = 3.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.BeansAndGrains.JubileeRice.jpg")
            });



            // Category: Beverages
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 19,
                Code = "0019",
                Name = "Coconut Milk, Organic,12 x 13.5 ozs.",
                Price = 31.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.CoconutMilk.jpg"),
                Description = "Native Forest Unsweetened Organic Coconut Milk, Classic. Vegan.\r\n\r\nIn a fertile coastal valley, devoted Thailand farmers have achieved organic certification of their traditional coconut crop. Organic coconuts are generally smaller than their conventional counterparts, but the organically managed trees are more drought-resistant, and their soil is more rich and moisture retentive. We press the meat of these fresh, organic coconuts, yielding an oil-rich extract that is mixed only with filtered water and a tiny amount (less than 1%) of guar gum from the seeds of the guar plant. A staple of Thai and many Asian cuisines, coconut milk lends rich and creamy goodness to classic regional dishes. Perfect in soups, curries, sauces, desserts, and beverages, Native Forest Organic Coconut Milk may be the most delicious coconut milk you have ever tasted.\r\n\r\nINGREDIENTS: Certified Organic Coconut Milk (Organic Coconut, Water, Guar Gum)."
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 20,
                Code = "0020",
                Name = "Aloe Vera Juice,32 ozs.",
                Price = 9.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.AloeVeraJuice.jpg"),
                Description = "The Only Real Aloe Vera. Organically Grown Real Aloe Vera Juice.\r\n\r\nReal Aloe History: Real Aloe has been in the Aloe vera Business since 1972. We use only fresh Aloe leaves grown in the U.S.A.; therefore, the Aloe vera used in our products has never been frozen, freeze-dried, or reconstituted from a powder. We believe the original method of 'hand filleting' the leaves, allows us to maintain the maximum biological activity and effectiveness from the aloe leaf.\r\n\r\nReal Aloe's Aloe Vera is one of the only Aloe vera products on the market today that is 100% grown and bottled in the U.S.A. If you are not drinking Real Aloe today, ask where your Aloe vera is grown, processed and bottled. Many Aloe vera products today are made in China, Korea, and Mexico."
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 21,
                Code = "0021",
                Name = "Black Cherry Concentrate,12 x 8 ozs.",
                Price = 55.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.BlackCherryConcentrate.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 22,
                Code = "0022",
                Name = "Young Coconut Juice w/ Pulp,12 x 17.5 ozs.",
                Price = 29.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.YoungCoconutJuice.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 23,
                Code = "0023",
                Name = "100% Lemon Juice Organic,12 x 16 ozs.",
                Price = 62.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.LemonJuiceOrganic.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 24,
                Code = "0024",
                Name = "GOATS Milk Evaporated,12 ozs.",
                Price = 4.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.GOATSMilkEvaporated.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 25,
                Code = "0025",
                Name = "Bengal Spice Tea,1 box",
                Price = 3.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.BengalSpiceTea.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 26,
                Code = "0026",
                Name = "Green Tea with Antioxidants,box",
                Price = 3.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.GreenTea.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 27,
                Code = "0027",
                Name = "Draft Root Beer,4 x 12 ozs.",
                Price = 6.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.DraftRootBeer.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 28,
                Code = "0028",
                Name = "Black Cherry Spritzer,4 x 10.5 ozs.",
                Price = 5.59M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.BlackCherrySpritzer.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 29,
                Code = "0029",
                Name = "Jamaican Lemonade Spritzer,4 x 10.5 ozs.",
                Price = 5.39M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.JamaicanLemonadeSpritzer.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[2],
                Id = 30,
                Code = "0030",
                Name = "Vegetable Cocktail Juice, Org,17 ozs.",
                Price = 7.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Beverages.VegetableCocktailJuice.jpg")
            });



            // Category: Fruits & Sweeteners
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 31,
                Code = "0031",
                Name = "Apple Sauce, Organic,23 ozs.",
                Price = 5.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.AppleSauce.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 32,
                Code = "0032",
                Name = "Almond Roll Dates, Organic,5 lbs.",
                Price = 46.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.AlmondRollDates.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 33,
                Code = "0033",
                Name = "Figs, Conadria-ORGANIC,5 lbs.",
                Price = 29.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.Figs.jpg"),
                Description = "These figs are noted for their delicious, nut-like flavor and tender, golden skin. A popular favorite for eating out of hand. May be used in fig bars and pastes. Preservative free."
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 34,
                Code = "0034",
                Name = "Apple Butter,18 ozs.",
                Price = 8.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.AppleButter.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 35,
                Code = "0035",
                Name = "Diced Tomatoes, Organic,3 x 28 ozs.",
                Price = 10.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.DicedTomatoes.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 36,
                Code = "0036",
                Name = "Apple Chips, Fuji, Organic,3 ozs.",
                Price = 3.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.AppleChips.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 37,
                Code = "0037",
                Name = "Apricots Dried, Organic,5 lbs.",
                Price = 59.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.ApricotsDried.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 38,
                Code = "0038",
                Name = "Cranberries, Dried,5 lbs.",
                Price = 26.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.CranberriesDried.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 39,
                Code = "0039",
                Name = "Pineapple,1 lb.",
                Price = 5.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.Pineapple.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 40,
                Code = "0040",
                Name = "Raisins, Thompson,1 lb.",
                Price = 3.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.Raisins.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[3],
                Id = 41,
                Code = "0041",
                Name = "Maple Sugar, Organic,8 x 10 ozs.",
                Price = 73.79M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.FruitsAndSweeteners.MapleSugar.jpg")
            });



            // Category: Grocery Products
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 42,
                Code = "0042",
                Name = "Soy CURLS, Organic,8 ozs.",
                Price = 4.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.SoyCURLS.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 43,
                Code = "0043",
                Name = "Yellow Corn Taco Shells,12 x 5.5 ozs.",
                Price = 43.79M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.YellowCornTacoShells.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 44,
                Code = "0044",
                Name = "Florentine Risotto, Organic,3 x 5.75 ozs.",
                Price = 11.39M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.FlorentineRisotto.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 45,
                Code = "0045",
                Name = "Traditional Miso-Cup w/Tofu,1.3 ozs.",
                Price = 4.79M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.TraditionalMisoCup.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 46,
                Code = "0046",
                Name = "Pistol River Mixed Wild Mushrooms,0.75 ozs.",
                Price = 4.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.PistolRiverMixedWildMushrooms.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 47,
                Code = "0047",
                Name = "Ginger Chunks, Organic,1 lb.",
                Price = 9.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.GingerChunks.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 48,
                Code = "0048",
                Name = "Albacore Tuna, Salted,24 x 6 ozs.",
                Price = 66.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.AlbacoreTuna.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 49,
                Code = "0049",
                Name = "PINK Salmon,14.75 ozs. CAN",
                Price = 4.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.PINKSalmon.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 50,
                Code = "0050",
                Name = "Broth, Chicken Org.,4 x 8 ozs.",
                Price = 4.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.BrothChickenOrg.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 51,
                Code = "0051",
                Name = "Creamy Tomato Soup, Organic,12 x 16 ozs.",
                Price = 32.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.CreamyTomatoSoup.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[4],
                Id = 52,
                Code = "0052",
                Name = "French Onion Soup, Organic,12 x 16 ozs.",
                Price = 32.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.GroseryProducts.FrenchOnionSoup.jpg")
            });



            // Category: Seasonings
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 53,
                Code = "0053",
                Name = "Yellow Mustard, Squeeze, Organic,12 x 9 ozs.",
                Price = 36.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.YellowMustard.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 54,
                Code = "0054",
                Name = "Lite Safflower Mayonnaise,12 x 24 ozs.",
                Price = 80.87M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.LiteSafflowerMayonnaise.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 55,
                Code = "0055",
                Name = "Dijon Mustard, Organic,12 x 8 ozs.",
                Price = 25.39M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.DijonMustard.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 56,
                Code = "0056",
                Name = "Tomato Ketchup, Organic,12 x 24 ozs.",
                Price = 48.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.TomatoKetchup.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 57,
                Code = "0057",
                Name = "Stuffed Green Olives w/Peppers Org,12 x 9 ozs.",
                Price = 75.39M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.StuffedGreenOlives.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 58,
                Code = "0058",
                Name = "Extract, Pure Chocolate, Organic,2 ozs.",
                Price = 6.59M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.ExtractPureChocolate.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 59,
                Code = "0059",
                Name = "San-J Tamari Soy Sauce, Black Label,6 x 20 ozs.",
                Price = 28.27M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.San-JTamariSoySauce.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 60,
                Code = "0060",
                Name = "OrganicVilHerbsDeProvenceVinaigrette,8 ozs.",
                Price = 4.59M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.OrganicVilHerbsDeProvenceVinaigrette.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[5],
                Id = 61,
                Code = "0061",
                Name = "Pistol RiverMushroom Parmesan Season,4 ozs.",
                Price = 5.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.Seasoning.PistolRiverMushroomParmesan.jpg")
            });


            // Category: Snacks & Treats
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 62,
                Code = "0062",
                Name = "Chewing Gum, Peppermint Blast,100 pcs.",
                Price = 7.79M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.ChewingGum.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 63,
                Code = "0063",
                Name = "Wheat Brushetta Veg Crackers, Org,6 x 6 ozs.",
                Price = 24.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.WheatBrushettaVegCrackers.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 64,
                Code = "0064",
                Name = "Wheatettes Baked Crackers,12 x 6 ozs.",
                Price = 44.09M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.WheatettesBakedCrackers.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 65,
                Code = "0065",
                Name = "BrownRice Crackers/Tamari,WheatFree,2.6 ozs.",
                Price = 5.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.BrownRiceCrackers.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 66,
                Code = "0066",
                Name = "Turkey Jerky, Regular,4 ozs.",
                Price = 9.49M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.TurkeyJerky.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 67,
                Code = "0067",
                Name = "Raspberry Bar,36 x 1 oz.",
                Price = 28.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.RaspberryBar.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 68,
                Code = "0068",
                Name = "Licorice Chews with Herbs,7 ozs.",
                Price = 3.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.LicoriceChews.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 69,
                Code = "0069",
                Name = "Pure Maple Candy Fancies,6 x 12 pcs.",
                Price = 61.59M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.PureMapleCandy2.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 70,
                Code = "0070",
                Name = "Pure Maple Candy Fancies,3 x 6 pcs.",
                Price = 18.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.PureMapleCandy.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 71,
                Code = "0071",
                Name = "Organic *Potato* Chips,3 x 5 ozs.",
                Price = 9.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.OrganicPotatoChips.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 72,
                Code = "0072",
                Name = "Rice Chips, Sesame & Seaweed,3 x 6 ozs.",
                Price = 10.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.RiceChips.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 73,
                Code = "0073",
                Name = "Rice Cakes, Brown, Unsalted, Organic,12 x 8.5 ozs.",
                Price = 42.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.RiceCakes.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 74,
                Code = "0074",
                Name = "HAZELNUT Nut Thins,3 x 4.25 ozs.",
                Price = 10.89M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.HAZELNUTNutThins.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 75,
                Code = "0075",
                Name = "Blue Corn Tortilla Chips, Salted,3 x 9 ozs.",
                Price = 11.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.BlueCornTortillaChips.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 76,
                Code = "0076",
                Name = "Mini Yellow Tortilla Chips,3 x 7.5 ozs.",
                Price = 7.29M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.MiniYellowTortillaChips.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 77,
                Code = "0077",
                Name = "Vanilla Pudding & Pie Mix,3 x 3.75 ozs.",
                Price = 8.19M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.VanillaPuddingPieMix.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 78,
                Code = "0078",
                Name = "Healthy Hazel,24 x 1.7 ozs.",
                Price = 48.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.HealthyHazel.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 79,
                Code = "0079",
                Name = "Perfect Pumpkin,24 x 1.7 ozs.",
                Price = 48.69M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.PerfectPumpkin.jpg")
            });
            _products.Add(new Product()
            {
                Category = _productCategories[6],
                Id = 80,
                Code = "0080",
                Name = "Bar Chai with Almonds, Organic,15 x 1.6 ozs.",
                Price = 30.99M,
                Image = GetEmbeddedResource(@"Docentric.Examples.Data.BusinessObjects.ProductImages.SnacksAndTreats.BarChaiWithAlmonds.jpg")
            });
            #endregion


            #region Fill Customers
            _customers = new List<Customer>() {
                new Customer() { Id=1, Company ="Company A", LastName = "Bedecs", FirstName="Anna", EmailAddress="ana.bedecs@gmail.com", JobTitle="Owner", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 1st Street", City="Seattle", Province="WA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=2, Company ="Company B", LastName = "Gratacos Solsona", FirstName="Antonio", EmailAddress="antonio.gratacos@gmail.com", JobTitle="Owner", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 2nd Street", City="Boston", Province="MA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=3, Company ="Company C", LastName = "Axen", FirstName="Thomas", EmailAddress="thomas.axen@gmail.com", JobTitle="Purchasing Representative", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 3rd Street", City="Los Angelas", Province="CA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=4, Company ="Company D", LastName = "Lee", FirstName="Christina", EmailAddress="christina.lee@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 4th Street", City="New York", Province="NY", PostalCode="99999", Country="USA"}},
                new Customer() { Id=5, Company ="Company E", LastName = "O’Donnell", FirstName="Martin", EmailAddress="martin.odonnel@gmail.com", JobTitle="Owner", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 5th Street", City="Minneapolis", Province="MN", PostalCode="99999", Country="USA"}},
                new Customer() { Id=6, Company ="Company F", LastName = "Pérez-Olaeta", FirstName="Francisco", EmailAddress="francisco.olaeta@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 6th Street", City="Milwaukee", Province="WI", PostalCode="99999", Country="USA"}},
                new Customer() { Id=7, Company ="Company G", LastName = "Xie", FirstName="Ming-Yang", EmailAddress="mingyang@gmail.com", JobTitle="Owner", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 7th Street", City="Boise", Province="ID", PostalCode="99999", Country="USA"}},
                new Customer() { Id=8, Company ="Company H", LastName = "Andersen", FirstName="Elizabeth", EmailAddress="elizabeth.andersen@gmail.com", JobTitle="Purchasing Representative", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 8th Street", City="Portland", Province="OR", PostalCode="99999", Country="USA"}},
                new Customer() { Id=9, Company ="Company I", LastName = "Mortensen", FirstName="Sven", EmailAddress="sven.mortensen@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 9th Street", City="Salt Lake City", Province="UT", PostalCode="99999", Country="USA"}},
                new Customer() { Id=10, Company ="Company J", LastName = "Wacker", FirstName="Roland", EmailAddress="Roland.Wacker@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 10th Street", City="Chicago", Province="IL", PostalCode="99999", Country="USA"}},
                new Customer() { Id=11, Company ="Company K", LastName = "Krschne", FirstName="Peter", EmailAddress="Peter.Krschne@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 11th Street", City="Miami", Province="FL", PostalCode="99999", Country="USA"}},
                new Customer() { Id=12, Company ="Company L", LastName = "Edwards", FirstName="John", EmailAddress="John.Edwards@gmail.com", JobTitle="Accounting Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 12th Street", City="Las Vegas", Province="NV", PostalCode="99999", Country="USA"}},
                new Customer() { Id=13, Company ="Company M", LastName = "Ludick", FirstName="Andre", EmailAddress="Andre.Ludick@gmail.com", JobTitle="Purchasing Representative", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 13th Street", City="Memphis", Province="TN", PostalCode="99999", Country="USA"}},
                new Customer() { Id=14, Company ="Company N", LastName = "Grilo", FirstName="Carlos", EmailAddress="Andre.Grilo@gmail.com", JobTitle="Purchasing Representative", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 14th Street", City="Denver", Province="CO", PostalCode="99999", Country="USA"}},
                new Customer() { Id=15, Company ="Company O", LastName = "Kupkova", FirstName="Helena", EmailAddress="", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 15th Street", City="Honolulu", Province="HI", PostalCode="99999", Country="USA"}},
                new Customer() { Id=16, Company ="Company P", LastName = "Goldschmidt", FirstName="Daniel", EmailAddress="Daniel.Goldschmidt@gmail.com", JobTitle="Purchasing Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 16th Street", City="San Francisco", Province="CA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=17, Company ="Company Q", LastName = "Bagel", FirstName="Jean Philippe", EmailAddress="JeanPhilippe.Bagel@gmail.com", JobTitle="Accounting Manager", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 17th Street", City="Seattle", Province="WA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=18, Company ="Company R", LastName = "Autier Miconi", FirstName="Catherine", EmailAddress="", JobTitle="Purchasing Assistant", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 18th Street", City="Boston", Province="MA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=19, Company ="Company S", LastName = "Eggerer", FirstName="Alexander", EmailAddress="Eggerer", JobTitle="Accounting Assistant", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 19th Street", City="Los Angelas", Province="CA", PostalCode="99999", Country="USA"}},
                new Customer() { Id=20, Company ="Company T", LastName = "Hasselberg", FirstName="Jonas", EmailAddress="Jonas.Hasselberg@gmail.com", JobTitle="Accounting Assistant", BusinessPhone="(123)555-0100", FaxNumber="(123)555-0101",
                                 Address = new Address() { StreetNumber="123 20th Street", City="New York", Province="NY", PostalCode="99999", Country="USA"}},
             };
            #endregion


            #region Fill Orders
            _orders = new List<Order>();

            // Order #1
            Order o1 = new Order()
                {
                    Id = 1,
                    Customer = _customers[0],
                    OrderDate = new DateTime(2011, 1, 15),
                    ShippedDate = new DateTime(2011, 1, 22),
                    ShipName = "Karen Toh",
                    ShipAddress = new Address() { StreetNumber = "789 27th Street", City = "Las Vegas", Province = "NV", PostalCode = "99999", Country = "USA" },
                    ShippingFee = 200M,
                    Taxes = 0M,
                    PaymentType = "Check",
                    PaidDate = new DateTime(2011, 1, 15),
                    TaxRate = 0,
                    Status = OrderStatus.Closed
                };

            new OrderDetail() { Id = 1, Order = o1, Product = _products[0], Discount = 0, Quantity = 30, UnitPrice = _products[0].Price };
            new OrderDetail() { Id = 2, Order = o1, Product = _products[10], Discount = 0, Quantity = 50, UnitPrice = _products[10].Price };
            new OrderDetail() { Id = 3, Order = o1, Product = _products[20], Discount = 0.1, Quantity = 20, UnitPrice = _products[20].Price };
            _orders.Add(o1);


            // Order #2
            Order o2 = new Order()
            {
                Id = 2,
                Customer = _customers[10],
                OrderDate = new DateTime(2011, 1, 1),
                ShippedDate = new DateTime(2011, 1, 10),
                ShipName = "Christina Lee",
                ShipAddress = new Address() { StreetNumber = "123 4th Street", City = "New York", Province = "NY", PostalCode = "99999", Country = "USA" },
                ShippingFee = 100M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = new DateTime(2011, 1, 3),
                TaxRate = 0,
                Status = OrderStatus.Closed
            };

            new OrderDetail() { Id = 4, Order = o2, Product = _products[1], Discount = 0, Quantity = 50, UnitPrice = _products[1].Price };
            new OrderDetail() { Id = 5, Order = o2, Product = _products[2], Discount = 0, Quantity = 40, UnitPrice = _products[2].Price };
            new OrderDetail() { Id = 6, Order = o2, Product = _products[3], Discount = 0.1, Quantity = 130, UnitPrice = _products[3].Price };
            new OrderDetail() { Id = 7, Order = o2, Product = _products[4], Discount = 0.5, Quantity = 200, UnitPrice = _products[4].Price };
            _orders.Add(o2);


            // Order #3
            Order o3 = new Order()
            {
                Id = 3,
                Customer = _customers[12],
                OrderDate = new DateTime(2011, 2, 10),
                ShippedDate = new DateTime(2011, 2, 15),
                ShipName = "John Edwards",
                ShipAddress = new Address() { StreetNumber = "123 12th Street", City = "Portland", Province = "OR", PostalCode = "99999", Country = "USA" },
                ShippingFee = 40M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = new DateTime(2011, 2, 10),
                TaxRate = 0,
                Status = OrderStatus.Closed
            };

            new OrderDetail() { Id = 8, Order = o3, Product = _products[15], Discount = 0, Quantity = 20, UnitPrice = _products[15].Price };
            new OrderDetail() { Id = 9, Order = o3, Product = _products[16], Discount = 0, Quantity = 50, UnitPrice = _products[16].Price };
            _orders.Add(o3);


            // Order #4
            Order o4 = new Order()
            {
                Id = 4,
                Customer = _customers[15],
                OrderDate = new DateTime(2011, 2, 3),
                ShippedDate = new DateTime(2011, 2, 10),
                ShipName = "Elizabeth Andersen",
                ShipAddress = new Address() { StreetNumber = "123 8th Street", City = "Chicago", Province = "IL", PostalCode = "99999", Country = "USA" },
                ShippingFee = 30M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = null,
                TaxRate = 0,
                Status = OrderStatus.Shipped
            };

            new OrderDetail() { Id = 10, Order = o4, Product = _products[21], Discount = 0, Quantity = 10, UnitPrice = _products[21].Price };
            new OrderDetail() { Id = 11, Order = o4, Product = _products[22], Discount = 0, Quantity = 10, UnitPrice = _products[22].Price };
            new OrderDetail() { Id = 12, Order = o4, Product = _products[23], Discount = 0, Quantity = 20, UnitPrice = _products[23].Price };
            new OrderDetail() { Id = 13, Order = o4, Product = _products[24], Discount = 0, Quantity = 5, UnitPrice = _products[24].Price };
            _orders.Add(o4);


            // Order #5
            Order o5 = new Order()
            {
                Id = 5,
                Customer = _customers[16],
                OrderDate = new DateTime(2011, 3, 7),
                ShippedDate = new DateTime(2011, 3, 10),
                ShipName = "Soo Jung Lee",
                ShipAddress = new Address() { StreetNumber = "123 4th Street", City = "Boise", Province = "ID", PostalCode = "99999", Country = "USA" },
                ShippingFee = 200M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = new DateTime(2011, 3, 7),
                TaxRate = 0,
                Status = OrderStatus.Shipped
            };

            new OrderDetail() { Id = 14, Order = o5, Product = _products[31], Discount = 0, Quantity = 30, UnitPrice = _products[31].Price };
            new OrderDetail() { Id = 15, Order = o5, Product = _products[32], Discount = 0, Quantity = 10, UnitPrice = _products[32].Price };
            new OrderDetail() { Id = 16, Order = o5, Product = _products[33], Discount = 0.1, Quantity = 50, UnitPrice = _products[33].Price };
            _orders.Add(o5);


            // Order #6
            Order o6 = new Order()
            {
                Id = 6,
                Customer = _customers[18],
                OrderDate = new DateTime(2011, 3, 8),
                ShippedDate = new DateTime(2011, 3, 15),
                ShipName = "Thomas Axen",
                ShipAddress = new Address() { StreetNumber = "789 29th Street", City = "Seattle", Province = "WA", PostalCode = "99999", Country = "USA" },
                ShippingFee = 30M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = new DateTime(2011, 3, 8),
                TaxRate = 0,
                Status = OrderStatus.New
            };

            new OrderDetail() { Id = 17, Order = o6, Product = _products[42], Discount = 0, Quantity = 10, UnitPrice = _products[42].Price };
            new OrderDetail() { Id = 18, Order = o6, Product = _products[43], Discount = 0, Quantity = 5, UnitPrice = _products[43].Price };
            _orders.Add(o6);


            // Order #7
            Order o7 = new Order()
            {
                Id = 7,
                Customer = _customers[19],
                OrderDate = new DateTime(2011, 3, 16),
                ShippedDate = null,
                ShipName = "Amritansh Raghav",
                ShipAddress = new Address() { StreetNumber = "123 3rd Street", City = "Miami", Province = "FL", PostalCode = "99999", Country = "USA" },
                ShippingFee = 100M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = null,
                TaxRate = 0,
                Status = OrderStatus.New
            };

            new OrderDetail() { Id = 19, Order = o7, Product = _products[61], Discount = 0, Quantity = 20, UnitPrice = _products[61].Price };
            new OrderDetail() { Id = 20, Order = o7, Product = _products[62], Discount = 0, Quantity = 20, UnitPrice = _products[62].Price };
            new OrderDetail() { Id = 21, Order = o7, Product = _products[63], Discount = 0, Quantity = 10, UnitPrice = _products[63].Price };
            new OrderDetail() { Id = 22, Order = o7, Product = _products[64], Discount = 0, Quantity = 10, UnitPrice = _products[64].Price };
            new OrderDetail() { Id = 23, Order = o7, Product = _products[65], Discount = 0, Quantity = 10, UnitPrice = _products[65].Price };
            new OrderDetail() { Id = 24, Order = o7, Product = _products[66], Discount = 0, Quantity = 20, UnitPrice = _products[66].Price };
            new OrderDetail() { Id = 25, Order = o7, Product = _products[67], Discount = 0, Quantity = 10, UnitPrice = _products[67].Price };
            new OrderDetail() { Id = 26, Order = o7, Product = _products[68], Discount = 0.2, Quantity = 30, UnitPrice = _products[68].Price };
            _orders.Add(o7);


            // Order #8
            Order o8 = new Order()
            {
                Id = 8,
                Customer = _customers[18],
                OrderDate = new DateTime(2011, 3, 21),
                ShippedDate = new DateTime(2011, 3, 27),
                ShipName = "Karen Toh",
                ShipAddress = new Address() { StreetNumber = "123 6th Street", City = "Denver", Province = "CO", PostalCode = "99999", Country = "USA" },
                ShippingFee = 40M,
                Taxes = 0M,
                PaymentType = "Check",
                PaidDate = new DateTime(2011, 3, 21),
                TaxRate = 0,
                Status = OrderStatus.Closed
            };

            new OrderDetail() { Id = 27, Order = o8, Product = _products[72], Discount = 0, Quantity = 20, UnitPrice = _products[72].Price };
            new OrderDetail() { Id = 28, Order = o8, Product = _products[73], Discount = 0, Quantity = 1, UnitPrice = _products[73].Price };
            new OrderDetail() { Id = 29, Order = o8, Product = _products[74], Discount = 0, Quantity = 10, UnitPrice = _products[74].Price };
            new OrderDetail() { Id = 30, Order = o8, Product = _products[75], Discount = 0, Quantity = 50, UnitPrice = _products[75].Price };
            _orders.Add(o8);
            #endregion


            #region Fill Store
            _store = new Store() { Address = new Address() { StreetNumber = "123 2nd Street", City = "Boston", Province = "MA", PostalCode = "99999", Country = "USA" } };
            _store.Products.AddRange(_products);
            #endregion
        }



        // GetEmbeddedResource
        private static byte[] GetEmbeddedResource(string resourceName)
        {
            Stream resourceStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
            BinaryReader br = new BinaryReader(resourceStream);
            return br.ReadBytes((int)resourceStream.Length);
        }
        #endregion


        // GetStore
        public static Store GetStore()
        {
            return _store;
        }


        // GetProducts
        public static List<Product> GetProducts()
        {
            return _products;
        }


		// GetProductCategories
		public static List<ProductCategory> GetProductCategories()
		{
			return _productCategories;
		}


        // GetProductsWithDescription
        public static IEnumerable<Product> GetProductsWithDescription()
        {
            return _products.Where(p => !string.IsNullOrEmpty(p.Description));
        }


        // GetProductById
        public static Product GetProductById(long id)
        {
            return _products.SingleOrDefault(p => p.Id == id);
        }


        // GetOrders
        public static List<Order> GetOrders()
        {
            return _orders;
        }


        // GetOrderById
        public static Order GetOrderById(long id)
        {
            return _orders.SingleOrDefault(c => c.Id == id);
        }


        // GetCustomerById
        public static Customer GetCustomerById(long id)
        {
            return _customers.SingleOrDefault(c => c.Id == id);
        }


        // GetOrders
        public static List<Customer> GetCustomers()
        {
            return _customers;
        }
    }
}
